Component({
  options: {
    multipleSlots: true // 在组件定义时的选项中启用多slot支持
  },
  /**
   * 组件的属性列表
   */
  properties: {
    extClass: {
      type: String,
      value: ''
    },
    title: {
      type: String,
      value: ''
    },
    background: {
      type: String,
      value: ''
    },
    bannerList:{
      type: Array,
      value: [{
        hex:'#000',
      },{
        hex:'#fff',
      },{
        hex:'#333',
      }]
    },
    color: {
      type: String,
      value: ''
    },
    back: {
      type: Boolean,
      value: true
    },
    loading: {
      type: Boolean,
      value: false
    },
    homeButton: {
      type: Boolean,
      value: false,
    },
    animated: {
      // 显示隐藏的时候opacity动画效果
      type: Boolean,
      value: true
    },
    show: {
      // 显示隐藏导航，隐藏的时候navigation-bar的高度占位还在
      type: Boolean,
      value: true,
      observer: '_showChange'
    },
    // back为true的时候，返回的页面深度
    delta: {
      type: Number,
      value: 1
    },
    // 公告模式相关属性
    isNoticeMode: {
      type: Boolean,
      value: false
    },
    notice: {
      type: String,
      value: ''
    },
    current:{
      type: Number,
      value: 0,
      observer(newVal) {
        // 当父组件传递的current变化，调用子组件方法同步切换
        this.setData({ swiperCurrent: newVal });
      }
    }
  },
  /**
   * 组件的初始数据
   */
  data: {
    displayStyle: '',
    navBarHeight: 0, // 导航栏高度
    statusBarHeight: 0, // 状态栏高度
    totalHeight: 0, // 总高度
    MenuButton:{},
    swiperCurrent:0,
  },
  lifetimes: {
    attached() {
      const rect = wx.getMenuButtonBoundingClientRect()
      wx.getSystemInfo({
        success: (res) => {
          const isAndroid = res.platform === 'android'
          const isDevtools = res.platform === 'devtools'
          
          // 计算导航栏高度
          const statusBarHeight = res.statusBarHeight;
          const navBarHeight = isAndroid ? 48 : 44;
          const totalHeight = statusBarHeight + navBarHeight;
          this.setData({
            ios: !isAndroid,
            innerPaddingRight: `padding-right: ${res.windowWidth - rect.left}px`,
            leftWidth: `width: ${res.windowWidth - rect.left }px`,
            statusBarHeight,
            navBarHeight,
            totalHeight,
            MenuButton:rect
          })
          
          // 将高度信息共享到全局数据
          const app = getApp();
          if (app && app.globalData) {
            app.globalData.navHeight = {
              statusBarHeight,
              navBarHeight,
              totalHeight
            };
          }
        }
      })


         // 获取的数值单位是px
    const windowInfo = wx.getWindowInfo();
    const menuButtonInfo = wx.getMenuButtonBoundingClientRect();
    console.log(windowInfo);
    console.log(menuButtonInfo);

    let statusBarHeight = windowInfo.statusBarHeight;
    let navBarHeight =
      menuButtonInfo.height + (menuButtonInfo.top - statusBarHeight) * 2;
    let safeHeight = windowInfo.safeArea.height;
    let bottomSafeHeight =
      windowInfo.screenHeight - windowInfo.safeArea.height - statusBarHeight;
    this.setData({
      statusBarHeight,
      navBarHeight,
      safeHeight,
      bottomSafeHeight,
    });
    console.log("statusBarHeight", statusBarHeight);
    console.log("navBarHeight", navBarHeight);
    console.log("safeHeight", safeHeight);
    console.log("bottomSafeHeight", bottomSafeHeight);
    },
  },
  /**
   * 组件的方法列表
   */
  methods: {
    _showChange(show) {
      const animated = this.data.animated
      let displayStyle = ''
      if (animated) {
        displayStyle = `opacity: ${
          show ? '1' : '0'
        };transition:opacity 0.5s;`
      } else {
        displayStyle = `display: ${show ? '' : 'none'}`
      }
      this.setData({
        displayStyle
      })
    },
    back() {
      const data = this.data
      if (data.delta) {
        wx.navigateBack({
          delta: data.delta
        })
      }
      this.triggerEvent('back', { delta: data.delta }, {})
    },
    home() {
      this.triggerEvent('home', {}, {})
    },
    onNoticeClick() {
      this.triggerEvent('noticeClick', {}, {})
    }
  },
})
